package pacman;

import robots.OwnGhost;

public class GhostRunner implements Runnable {
	OwnGhost g;
	private boolean VERBOSE = true;

	public GhostRunner(OwnGhost g) {
		this.g = g;
	}

	public void run() {
		if(!g.getGame().ownGame){ //Bij een ownGame zijn al de volgende attributen enzo automatisch ingesteld
			// Wacht totdat er genoeg joins
			if(VERBOSE) System.out.println(g.getName() + " stuurt JOIN");
			g.protocolSender.sendJOIN();
			
			if(VERBOSE) System.out.println(g.getName() + " begint met joinPhase");
			while(g.getGame().stayInJoinPhase){
				//Wacht op de 4 joins of een naam
				System.out.println(g.getName() + " wacht op 4 joins of een NAME. Heeft nu " + g.getGame().numberOfJoins + " joins en " + g.getGame().numberOfNamesRegistered + " namen.");
				try {
					Thread.sleep(750);
				} catch (InterruptedException e) {
				}
			}
			
			//4 joins ontvangen dus ook naam verstuurd.
			while(!g.getGame().isInitialized()){
				//Wacht totdat alle NAMEn gekend zijn
				if(VERBOSE) System.out.println(g.getName() + " wacht tot alle namen gekend zijn, heeft er nu " + g.getGame().numberOfJoins);
				try {
					Thread.sleep(250);
				} catch (InterruptedException e) {
				}
			}
				
			if(VERBOSE) System.out.println(g.getName() + " start last prep");
		}
		g.getGame().lastPreparations(); //Laatste voorbereidingen = mazes goed zetten voor alle ghosts in de game
		g.run();
	}
}